package com.briup.es.config.response;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 通过枚举类，维护一个统一的响应；
 * 即统一维护响应状态码和响应消息的关系
 */
@Getter
// 创建一个私有的构造器
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public enum ResultCode {
    // 统一指定成功的响应
    SUCCESS(200,"ok"),

    // 认证失败响应
    USER_IS_EXISTS(10000,"该用户名已存在"),
    USER_IS_NOT_EXISTS(10001,"该用户不存在"),
    PASSWORD_IS_ERROR(10002,"您输入的密码有误，请重新输入"),
    ACCOUNT_IS_UNABLE(10003,"您的用户账号状态锁定，无法登录！"),
    TOKEN_IS_MISSING(10004,"您还未登录，请前往登录"),
    TOKEN_IS_TIMEOUT(10005,"您的登录已过期，请重新登录"),
    TOKEN_IS_INVALID(10006,"您的登录状态有误，请重新登录"),
    OLD_PASSWORD_IS_ERROR(10007,"您输入的原始密码有误，检查后继续修改密码"),

    // 参数异常失败响应
    PARAMS_IS_INVALID(20000,"您输入的参数有误，请检查后重新输入"),

    BOOK_IS_NOT_EXISTS(30001, "该图书不存在或已下架"),
    BOOK_STORE_NUM_IS_NULL(30002, "该图书库存不足"),
    BOOK_IS_UNABLE(30003,"存在未上架的图书"),
    ADDRESS_IS_NOT_FOUND(30004, "该地址未找到"),
    SHOPCAR_ITEM_IS_NOT_FOUND(30005, "该购物车项不存在"),

    // 业务异常响应
    INNER_SERVER_FAIL(500,"服务器内部异常，请联系管理员");

    private final Integer code;
    private final String message;
}
